package org.atomnuke.container.packaging.bindings.environment;
import java.util.LinkedList;
import java.util.List;
import org.atomnuke.container.packaging.bindings.BindingEnvironmentFactory;
import org.atomnuke.container.packaging.bindings.lang.java.JavaBindingEnvironment;
import org.atomnuke.container.packaging.bindings.lang.jython.JythonBindingEnvironment;
import org.atomnuke.container.packaging.bindings.lang.rhinojs.RhinoInterpreterContext;
import org.atomnuke.container.packaging.classloader.IdentityClassLoader;
import org.atomnuke.container.packaging.resource.ResourceManager;
/**
*
* @author zinic
*/
public class BindingEnvironmentManagerImpl implements BindingEnvironmentFactory {
private final ClassLoader rootClassloader;
public BindingEnvironmentManagerImpl(ResourceManager resourceManager) {
rootClassloader = new IdentityClassLoader(resourceManager);
}
@Override
public List<BindingEnvironment> newEnviornment(ResourceManager resourceManager) {
final List<BindingEnvironment> bindingContexts = new LinkedList<BindingEnvironment>();
bindingContexts.add(new JavaBindingEnvironment(rootClassloader, resourceManager));
bindingContexts.add(new JythonBindingEnvironment());
bindingContexts.add(RhinoInterpreterContext.newInstance());
return bindingContexts;
}
}